The code below is a pseudo code for the List Provider, which incorporates some of the tips and recommendations from the List Provider overview topic.
Use the pseudo code below as a starting point for a List Provider plugin.
package com.oracle.determinations.interview.engine.userplugins;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import com.oracle.determinations.engine.Attribute;
import com.oracle.determinations.interview.engine.InterviewSession;
import com.oracle.determinations.interview.engine.plugins.InterviewSessionPlugin;
import com.oracle.determinations.interview.engine.plugins.InterviewSessionRegisterArgs;
import com.oracle.determinations.interview.engine.plugins.listprovider.ListProviderPlugin;
import com.oracle.determinations.interview.engine.screen.InputInterviewControl;
import com.oracle.determinations.interview.engine.screen.ListOption;
public class DerbyListProvider implements ListProviderPlugin {
//REQUIRED by Plugin interface
public DerbyListProvider()
{
}
//REQUIRED by ListProviderPlugin interface
public List getListOptions(InputInterviewControl controlInstance,
InterviewSession session) {
//Setup connection to datasource
//Access datasource
//Loop through dataset
//for each item, create a ListOption object
//add ListOption object to the List object
//Return List object
}
//REQUIRED by Plugin interface
public InterviewSessionPlugin getInstance(InterviewSessionRegisterArgs args) {
//Inspect args if needed to determine if this ListProvider should be used for the current InterviewSession
return null;
}
}